package icu.qx.wm.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 产品库存对象 gbs_good
 *
 * @author alize
 * &#064;date  2024-06-14
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class GbsGood extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 产品编码
     */
    @Excel(name = "产品编码")
    private String pdCode;

    /**
     * 0 产品 1 物料
     */
    private String isMaterial;

    /**
     * 工艺路线
     */
    private String pdProuteCode;

    /**
     * 产品名称
     */
    @Excel(name = "产品名称")
    private String pdName;

    /**
     * 状态
     */
    private String pdStatus;

    /**
     * 规格型号
     */
    @Excel(name = "规格型号")
    private String pdSpecType;

    /**
     * 有效期
     */
    @Excel(name = "有效期")
    private String pdValidDate;

    /**
     * 产品单位名称
     */
    @Excel(name = "单位")
    private String pdGuName;

    /**
     * BOM
     */
    @Excel(name = "BOM")
    private String pdBomCode;

    /**
     * 提前报警天
     */
    private Long pdAlarmDate;

    /**
     * 采购价格
     */
    private Long pdOriginPrice;

    /**
     * 销售价格
     */
    private Long pdSalePrice;

    /**
     * 备注
     */
    private String pdDesc;

    /**
     * 单位外键
     */
    private Long pdUnitType;

    /**
     * 产品类型
     */
    @Excel(name = "产品类型")
    private String pdGoodType;

    /**
     * 产品属性
     */
    @Excel(name = "产品属性")
    private String pdGoodAttr;

    /**
     * 产品分类外键
     */
    private Long pdGoodClass;

    /**
     * 产品分类名称
     */
    @Excel(name = "产品分类")
    private String pdGcName;

    /**
     * 当前库存
     */
    @Excel(name = "当前库存")
    private Double storageNum;

    /**
     * 库存上限
     */
    @Excel(name = "库存上限")
    private BigDecimal pdMax;

    /**
     * 库存下限
     */
    @Excel(name = "库存下限")
    private BigDecimal pdMin;

    /**
     * 库存批次
     */
    private String storageBatch;

    /**
     * 库位code
     */
    private String storageSlCode;

    /**
     * 生产日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date storageProduction;

    /**
     * 到期日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date storageExpiration;

    // 库位名称
    private String storageSlName;

    // 库区编码
    private String storageSaCode;

    // 库区名称
    private String storageSaName;

    // 仓库编码
    private String storageWCode;

    // 仓库名称
    private String storageWName;

    @Override
    public String toString() {
        return "GbsGood{" +
                "pdCode='" + pdCode + '\'' +
                ", isMaterial='" + isMaterial + '\'' +
                ", pdProuteCode='" + pdProuteCode + '\'' +
                ", pdName='" + pdName + '\'' +
                ", pdStatus='" + pdStatus + '\'' +
                ", pdSpecType='" + pdSpecType + '\'' +
                ", pdValidDate='" + pdValidDate + '\'' +
                ", pdGuName='" + pdGuName + '\'' +
                ", pdBomCode='" + pdBomCode + '\'' +
                ", pdAlarmDate=" + pdAlarmDate +
                ", pdOriginPrice=" + pdOriginPrice +
                ", pdSalePrice=" + pdSalePrice +
                ", pdDesc='" + pdDesc + '\'' +
                ", pdUnitType=" + pdUnitType +
                ", pdGoodType='" + pdGoodType + '\'' +
                ", pdGoodAttr='" + pdGoodAttr + '\'' +
                ", pdGoodClass=" + pdGoodClass +
                ", pdGcName='" + pdGcName + '\'' +
                ", storageNum=" + storageNum +
                ", pdMax=" + pdMax +
                ", pdMin=" + pdMin +
                ", storageBatch='" + storageBatch + '\'' +
                ", storageSlCode='" + storageSlCode + '\'' +
                ", storageProduction='" + storageProduction + '\'' +
                ", storageExpiration=" + storageExpiration +
                ", storageSlName='" + storageSlName + '\'' +
                ", storageSaCode='" + storageSaCode + '\'' +
                ", storageSaName='" + storageSaName + '\'' +
                ", storageWCode='" + storageWCode + '\'' +
                ", storageWName='" + storageWName + '\'' +
                '}';
    }
}
